home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / weeklydump / weeklydump.old < prev   
Text File  |  1991-06-08  |  2KB  |  71 lines

  1. #! /sprite/cmds/csh -f
  2. #
  3. #   weeklydump [ startFs ]
  4. #
  5. #    Perform a weekly, level 0, dump.
  6. #    Dump all the filesystems that we want backed up.  If startFs
  7. #    is specified, we start dumping with that file system,
  8. #    presumably because the ones ahead of it in the list were
  9. #    already dumped.
  10. #
  11. # $Header: /sprite/src/admin/weeklydump/RCS/weeklydump,v 1.5 91/05/05 14:02:13 tve Exp Locker: shirriff $
  12. #
  13.  
  14. # This is our exit status.
  15. set result=0
  16.  
  17. # This is the list of filesystems that we want to dump.
  18. set filesystems=(/ /user6 /scratch5 /scratch6 /pcs /pcs/vlsi \
  19.   /user1 /sprite/src/kernel /sprite/src /user2 /user4 /X11 /local /scratch1 \
  20.   /postdev /graphics /scratch4)
  21.  
  22. # This is the list of tape drives we have to dump to.
  23. set tapeDrives=(/dev/exb1.nr /dev/exb2.nr)
  24. set drivesLeft=($tapeDrives)
  25.  
  26. # If the user specified a starting filesystem, skip over the ones in
  27. # front of it.
  28.  
  29. if ($#argv > 0) then
  30.     while (_$filesystems[1] != _$argv[1])
  31.         if ($#filesystems == 1) then
  32.             echo $argv[1] "isn't in the list of filesystems."
  33.             exit 1
  34.         endif
  35.         shift filesystems
  36.     end
  37. endif
  38.  
  39. # Run through the list of filesystems.  When we get to a dump that
  40. # fails, we assume it's because the tape filled up, so switch to the
  41. # next tape.  If we run out of tapes, send mail to the dumper with the
  42. # name of the next filesystem to be dumped.
  43.  
  44. while ($#filesystems > 0)
  45.     set fs=$filesystems[1]
  46.     set tape=$drivesLeft[1]
  47.     dump -f $tape -l 0 $fs
  48.     if ($status == 0) then
  49.         shift filesystems
  50.         continue
  51.     endif
  52.  
  53.     # Try to switch to another tape and retry the same filesystem.
  54.     if ($#drivesLeft > 1) then
  55.         shift drivesLeft
  56.     else
  57.         echo "Please resume with $fs" | \
  58.           mail -s "Dump ran out of tapes" dumper
  59.         set result=1
  60.         break
  61.     endif
  62. end
  63.  
  64. # Rewind the tapes.
  65.  
  66. foreach tape ($tapeDrives)
  67.     tape -r -t $tape
  68. end
  69.  
  70. exit $result
  71.